package com.shaoyu.elasticsearch.service.fulltext;

import com.shaoyu.elasticsearch.pojo.SearchParam;
import org.elasticsearch.action.search.SearchResponse;

import java.util.Map;

public interface FullTextSearchService {

    /**匹配查询（match query）*/
     String MATCH_QUERY = "match_query";
    /**多字段查询（multi_match query）*/
     String MULTI_MATCH_QUERY = "multi_match_query";
     String MULTI_MATCH_QUERY_FILEDS_SPLIT = "::";
    /**常用术语查询（common_terms query）*/
     String COMMON_TERMS_QUERY = "common_terms_query";
    /**查询语句查询（query_string query）*/
     String QUERY_STRING_QUERY = "query_string_query";
    /**简单查询语句（simple_query_string）*/
     String SIMPLE_QUERY_STRING = "simple_query_string";
    /**
     * 全文搜索<br/>
     * 参数说明:<br/>
     * 全文搜索分为五种查询:<br/>
     * 匹配查询（match query）,多字段查询（multi_match query）,常用术语查询（common_terms query）,查询语句查询（query_string query）和简单查询语句（simple_query_string）<br/>
     * 参数key值为这五种查询方式的英文,value值为查询参数,具体参考各细节实现方法
     * @param param
     * @return
     */
    SearchResponse searchFullText(SearchParam param);
}
